A producer-consumer design pattern can be used in a software system for a producer component to broadcast a message to interested consumer components. Consumer components can subscribe to events of a particular event type, for example. When a producer produces an event of the particular event type, consumers who have subscribed to that event type can receive the event.